var BaseAudioContext = function BaseAudioContext() {
    //如果不能new  要抛出一个错误
    throw new TypeError("Illegal constructor");
}//构造函数
catvm.safefunction(BaseAudioContext); //tostring 保护
//设置原型链上显示的名字***************************************************************************
Object.defineProperties(BaseAudioContext.prototype, {
    [Symbol.toStringTag]: {
        value: "BaseAudioContext",
        configurable: true
    }
});

// 原型指向原型父亲***************************************************************************
// BaseAudioContext = {};
BaseAudioContext.prototype.__proto__ = EventTarget.prototype

//该环境下的属性和方法***************************************************************************
BaseAudioContext.prototype.createOscillator = function createOscillator() {
    return OscillatorNode.prototype;
};catvm.safefunction(BaseAudioContext.prototype.createOscillator);

BaseAudioContext.prototype.createDynamicsCompressor = function createDynamicsCompressor() {
    return DynamicsCompressorNode.prototype;
};catvm.safefunction(BaseAudioContext.prototype.createDynamicsCompressor);


BaseAudioContext.prototype.destination = AudioDestinationNode.prototype
// 对于Navigator.prototype原型无法调用，但是navigator实例却可以调用的属性/方法进行抛出错误的设置***************************************************************************


//代理***************************************************************************
BaseAudioContext = catvm.proxy(BaseAudioContext)

